package 第八章this;

/*
 * this用法
 *   1、实例方法当中，代表当前对象                         this.
 *   2、构造方法当中，代表当前的构造方法调用其他的构造方法     this()   这个语句只能出现在第一行
 * */
public class Date {
    private int year;
    private int month;
    private int day;

    //生存无参数构造函数
    //需求：当调用以下默认无参数构造方法时，默认赋值为1970-01-01
    public Date() {
        //直接调用有参数构造方法，无需重复写，但是不能创建新的对象
        // this.day = 1;
        // this.month = 1;
        // this.year = 1970;
        this(1970, 1, 1);
        //通过this 不会创造新的对象，但是又可以调用其他构造对象
    }

    //生成构造函数和setter、getter

    public Date(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }


    //对外提供一个方法将日期打印在控制台
    public void printDate() {
        System.out.println(this.year + "-" + this.month + "-" + this.day);
    }

}
